const Koa = require('koa');
const Router = require('koa-Router');
const koaWebsocket = require('koa-websocket');

const app = koaWebsocket(new Koa());
const router = new Router();

let clients = [];

// WebSocket 连接处理
app.ws.use((ctx) => {
  ctx.websocket.on('message', (message) => {
    console.log(`Received: ${message}`);
    
    // 广播消息到所有连接的客户端
    clients.forEach((client) => {
      if (client !== ctx.websocket) {
        client.send(message);
      }
    });

    // 自动回复逻辑
    let replyMessage = getAutoReply(message);
    ctx.websocket.send(replyMessage); // 发送自动回复给发送者
  });

  // 客户端连接
  clients.push(ctx.websocket);
  
  // 断开连接时从 clients 数组中移除
  ctx.websocket.on('close', () => {
    clients = clients.filter((client) => client !== ctx.websocket);
  });
});

// 自动回复函数
function getAutoReply(message) {
  // 简单的关键词自动回复
  const responses = {
    '你好': '你好！你有什么不舒服吗？',
    '头疼': '建议前往医院进行诊断。',
  };

  // 检查是否有匹配的回复
  return responses[message] || '抱歉，我不太明白您说的话。';
}

app.use(router)

// 启动服务器
app.listen(3333, () => {
  console.log(`Server running on http://localhost:5000`);
});